/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package logicaClient;
import javax.swing.*;
import datosClient.*;
//import java.util.Calendar;
/**
 *
 * @author Daniela
 */
public class ComunicacionClient
{
    
    //private static Usuario elUsuario;
    //private static ListaPieza piezasDelUsuario;
    private static String pathImagen = "/presentacion/";



    /*SHOE MESSEGE:      Utiliza esto:

JOptionPanel.showMessageDialog(null, "MENSAJE");

esto desplegara una ventana pequeña con el mensaje que le envies
  */




    
     public static ListaPieza getPiezasDelUsuario() {
        return Usuario.getInstance().getPiezasUC();
    }

    public static void setPiezasDelUsuario(ListaPieza piezasDelUsuario) {
        Usuario.getInstance().setPiezasUC(piezasDelUsuario);//ComunicacionClient.piezasDelUsuario = piezasDelUsuario;
    }

   /* public static void inicializarEstructuras()
    {
        elUsuario = new Usuario();
    }*/

    public static Usuario getLosUsuarios() {
        return Usuario.getInstance();
    }

  /*  public static void IniciarTablero()
    {
        Usuario.getInstance().getPartida();
    }
*/




    public static String [] arregloPathAvatares =
               { "brunocb-slach-tux-nroses-7158.png" , "canascat-rap-tux.png" , "libermail-tux-pilot-12237.png" ,
                 "rock_tux.png" , "tux-mario.png" , "tux_venezolano1 - copia.jpg" ,
                 "keen-misstux-8280.png" , "symbiote-angel-tux-8611.png" , "avatar10384_2.gif" ,
                 "tux-7-10.png" , "tux12.png" , "logo_lea-linux.png"
               };



    public static String obtenerPathAvatarImagen(int IDavatar)
    {
        String resultado = "";

        resultado = arregloPathAvatares[IDavatar - 1];
       // System.out.println("\nResultado!!! +"+resultado);
        return resultado;
    }

    public static String concatenarPathImagen(String path)
    {
           return pathImagen + path;
    }

   
   public static void IngresoDatosUsuario(String nickname,String clave,String nombre, String apellido,int avatar, String avatarPATH)
    {
        Usuario.getInstance().setNickname(nickname);
        Usuario.getInstance().setClave(clave);
        Usuario.getInstance().setNombre(nombre);
        Usuario.getInstance().setApellido(apellido);
        Usuario.getInstance().getAvatar().setID(avatar);
        Usuario.getInstance().getAvatar().setPathAvatar(avatarPATH);
        System.out.println("Lo que agregue en el usuario del cliente en el ingreso del sistema");
        System.out.println(Usuario.getInstance().toString());

    }

    public static String obtenerDatosUsuario(JTextField nombre, JTextField apellido,String fecha, JTextField nickname, JPasswordField clave, int IDavatar, String avatarPATH)
    {
        Usuario registro = null;
        String nombreS, apellidoS, nicknameS, claveS,datos/*,diaM,mesM,añoM,fechaS*/;
        //int diaS, mesS, añoS ;
        boolean sta = false;
        nombreS = apellidoS = nicknameS = claveS = datos=/*diaM = mesM = añoM =  fechaS = */"";
        //diaS = mesS = añoS = 0;


        nombreS = nombre.getText();
        apellidoS = apellido.getText();
        nicknameS = nickname.getText();
        claveS = clave.getText();

       /* diaS = dia.getSelectedIndex();
        mesS = mes.getSelectedIndex();
        añoS = año.getSelectedIndex();
       diaM =  String.valueOf(diaS);
       mesM = String.valueOf(mesS);
       añoM = String.valueOf(añoS);
*/
       Usuario.getInstance().setNickname(nicknameS);
       Usuario.getInstance().setClave(claveS);
       Usuario.getInstance().setNombre(nombreS);
       Usuario.getInstance().setApellido(apellidoS);
    /*   Usuario.getInstance().setDia(diaS);
       Usuario.getInstance().setMes(mesS);
       Usuario.getInstance().setAño(añoS);*/

       Usuario.getInstance().agregarFechaNacCompleto(fecha);
       Usuario.getInstance().getAvatar().setID(IDavatar);
       Usuario.getInstance().getAvatar().setPathAvatar(avatarPATH);
       //Usuario user = new Usuario((String)nicknameS,(String)claveS,(String)nombreS,(String)apellidoS,Integer.parseInt(diaM),Integer.parseInt(mesM),Integer.parseInt(añoM));
       System.out.println("\nLO AGREGADO A USUARIO EN CLIENTE\n");
       Usuario.getInstance().toString();
      // fechaS = fechaS.concat(diaM).concat("/").concat(mesM).concat("/").concat(añoM);

       datos = datos.concat("3").concat(":").concat(nicknameS).concat(":").concat(claveS).concat(":").concat(nombreS).concat(":").concat(apellidoS).concat(":").concat(fecha).concat(":").concat(String.valueOf(IDavatar));
       return datos;

    }



    
     public static ListaPieza asignarPiezasUsuario(String resultado)
    {
        String [] piezaSeparada, valoresSeparados;
        int IDavatar,valorSup,valorInf, i;
        String pathA,pathB,pathI,pathD;
        i = 0;

        piezaSeparada = valoresSeparados = new String[7];
        ListaPieza arregloListaPieza = new ListaPieza();
        piezaSeparada = resultado.split(":");
            while ( i < 7)
            {

                IDavatar = valorSup = valorInf = 0;
                pathA = pathB = pathI = pathD = "";
                valoresSeparados = piezaSeparada[i].split("-");

                    IDavatar = Integer.parseInt(valoresSeparados[0]);
                    valorSup = Integer.parseInt(valoresSeparados[1]);
                    valorInf = Integer.parseInt(valoresSeparados[2]);
                    pathA = concatenarPathImagen(valoresSeparados[3]);
                    pathB = concatenarPathImagen(valoresSeparados[4]);
                    pathI = concatenarPathImagen(valoresSeparados[5]);
                    pathD =concatenarPathImagen(valoresSeparados[6]);
                    arregloListaPieza.agregarElemento( new Pieza(IDavatar, valorSup, valorInf, pathA, pathB, pathI, pathD));
                    i++;
            }
        return arregloListaPieza;
        //ComunicacionClient.getLosUsuarios().setPiezasUC(arregloListaPieza);
    }

      public static ListaPieza asignarPiezaDelPote(String piezaPote, ListaPieza piezasJugador)
     {
        Pieza objeto = new Pieza();
        int IDavatar,valSup,valInf;
            IDavatar = valSup = valInf = 0;
        String pathA, pathB, pathI, pathD, fraseSeparada[], piezaSeparada[], valoresPieza[];
                pathA = pathB = pathI = pathD = "";

         System.out.println("piezaPote " + piezaPote);
        fraseSeparada = new String[2];
        piezaSeparada = new String[7];
        valoresPieza = new String[8];
        //valoresPieza = new String[];
        fraseSeparada = piezaPote.split(":");
         System.out.println("fraseSeparada = " + fraseSeparada[1]);
        valoresPieza = fraseSeparada[1].split("-");
         System.out.println("valoresPieza = " + valoresPieza + "fraseSeparada = " + fraseSeparada);
        IDavatar = Integer.parseInt(valoresPieza[0]);
        valSup = Integer.parseInt(valoresPieza[1]);
        valInf = Integer.parseInt(valoresPieza[2]);
        System.out.println("dani.." + valoresPieza[3]);
        pathA = concatenarPathImagen(valoresPieza[3]);
        pathB = concatenarPathImagen(valoresPieza[4]);
        pathI = concatenarPathImagen(valoresPieza[6]);
        pathD = concatenarPathImagen(valoresPieza[5]);


        objeto = new Pieza(IDavatar, valSup, valInf, pathA, pathB, pathI, pathD);


        piezasJugador.agregarElemento(objeto);

        return piezasJugador;


     }

       public static String rotarImagen(JButton pieza, boolean RD )
        {
           System.out.println("el name de la pieza al principio es:     " + pieza.getName());

            String resultado,nombre,arreglo[];
            int posicionPieza,longitud;
            String pathImagen, pathsote;
            String letraDeRotacion, pathBuscado;
            char letraRote;
               letraDeRotacion = pathBuscado = pathsote = pathImagen = "";
               longitud = 0;
               arreglo = new String[2];

            pathImagen = String.valueOf(pieza.getName());

            arreglo = pathImagen.split("#");
            resultado = nombre = "";
            ListaPieza listaPiezas = getLosUsuarios().getPiezasUC();

               longitud = arreglo[1].length();
               letraDeRotacion = arreglo[1].substring(longitud-5, longitud-4);
               letraRote = letraDeRotacion.charAt(0);
               pathBuscado = arreglo[1];//arreglo[1].substring(longitud-7);
               Pieza resul;
               pathBuscado = pathBuscado.substring(longitud-7);
               //System.out.println("pathBuscado = " + pathBuscado + "letraRote = " +letraRote);
               resul = obtenerPiezaAtravesPath(pathBuscado,listaPiezas);
               resul.cambiarImagen(RD, letraRote);
                resultado = resul.getImagenAsociadaActual();

               pieza.setName(arreglo[0]+"#"+resultado);
               //System.out.println("el name de la pieza es:     " + pieza.getName());
               
            return resultado;
        }

   
    public static Pieza obtenerPiezaAtravesPath(String path, ListaPieza listaPiezasaBuscar)
    {

        boolean encontrado = false;
        Pieza resultado = null;
        path = concatenarPathImagen(path);
        //System.out.println("la lista de piezas del usuario es    ");listaPiezasaBuscar.imprimirColeccion();
       for (Pieza aux : listaPiezasaBuscar.getPiezas())
       {
           //System.out.println("aux = " + aux.getImagenAsociadaActual());
           if (aux.getImagenAsociadaActual().compareTo(path) == 0)
           {
               //System.out.println("................entrooooooooooooooooooooooooooooooo");
               encontrado = true;
               return aux;
           }
       }
        if (encontrado)
            {
                return resultado;
            }
        return null;
    }




  /*  public static Usuario ObtenerdatosUsuario(Object nick)
    {
        Usuario userComunicacion = new Usuario();

        try
        {
            userComunicacion = losUsuarios.RecorrerListaUsuario((String)nick);
        }
        catch(Exception e)
        {
            System.out.print("No se encuentra en la base:  ");
            System.out.println(e.getMessage());
        }

        return userComunicacion;
    }*/

}
